package com.ruoyi.system.domain;

import java.util.Date;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 提现记录对象 t_withdrawal_record
 * 
 * @author xiuddoo
 * @date 2025-09-17
 */
public class TWithdrawalRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    private String id;

    /** 申请人ID（商家或合伙人） */
    @Excel(name = "申请人ID", readConverterExp = "商=家或合伙人")
    private String applicantId;

    /** 申请人类型：MERCHANT=商家, PARTNER=合伙人 */
    @Excel(name = "申请人类型：MERCHANT=商家, PARTNER=合伙人")
    private String applicantType;

    /** 申请提现金额，单位元 */
    @Excel(name = "申请提现金额，单位元")
    private float amount;

    /** 币种，默认人民币 */
    @Excel(name = "币种，默认人民币")
    private String currency;

    /** 提现状态：PENDING=待审核, APPROVED=已通过, REJECTED=已拒绝 */
    @Excel(name = "提现状态：PENDING=待审核, APPROVED=已通过, REJECTED=已拒绝")
    private String approvalStatus;

    /** 申请时间 */
    @Excel(name = "申请时间")
    private String applyTime;

    /** 审核时间 */
    @Excel(name = "审核时间")
    private Date approveTime;

    /** 审核人ID，平台管理员 */
    @Excel(name = "审核人ID，平台管理员")
    private String approverId;

    /** 申请人联系方式 */
    @Excel(name = "申请人联系方式")
    private String phoneNumber;

    /** 申请说明，由申请人填写 */
    @Excel(name = "申请说明，由申请人填写")
    private String applyRemark;

    /** 审核说明，由管理员填写 */
    @Excel(name = "审核说明，由管理员填写")
    private String approvalRemark;

    /** 银行卡号 */
    @Excel(name = "银行卡号")
    private String bankCardNumber;

    /** 银行名称 */
    @Excel(name = "银行名称")
    private String bankName;

    /** 支行名称 */
    @Excel(name = "支行名称")
    private String bankBranchName;

    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String realName;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setApplicantId(String applicantId) 
    {
        this.applicantId = applicantId;
    }

    public String getApplicantId() 
    {
        return applicantId;
    }

    public void setApplicantType(String applicantType) 
    {
        this.applicantType = applicantType;
    }

    public String getApplicantType() 
    {
        return applicantType;
    }

    public void setAmount(float amount) 
    {
        this.amount = amount;
    }

    public float getAmount() 
    {
        return amount;
    }

    public void setCurrency(String currency) 
    {
        this.currency = currency;
    }

    public String getCurrency() 
    {
        return currency;
    }

    public void setApprovalStatus(String approvalStatus) 
    {
        this.approvalStatus = approvalStatus;
    }

    public String getApprovalStatus() 
    {
        return approvalStatus;
    }

    public void setApplyTime(String applyTime) 
    {
        this.applyTime = applyTime;
    }

    public String getApplyTime() 
    {
        return applyTime;
    }

    public void setApproveTime(Date approveTime) 
    {
        this.approveTime = approveTime;
    }

    public Date getApproveTime() 
    {
        return approveTime;
    }

    public void setApproverId(String approverId) 
    {
        this.approverId = approverId;
    }

    public String getApproverId() 
    {
        return approverId;
    }

    public void setPhoneNumber(String phoneNumber) 
    {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() 
    {
        return phoneNumber;
    }

    public void setApplyRemark(String applyRemark) 
    {
        this.applyRemark = applyRemark;
    }

    public String getApplyRemark() 
    {
        return applyRemark;
    }

    public void setApprovalRemark(String approvalRemark) 
    {
        this.approvalRemark = approvalRemark;
    }

    public String getApprovalRemark() 
    {
        return approvalRemark;
    }

    public void setBankCardNumber(String bankCardNumber) 
    {
        this.bankCardNumber = bankCardNumber;
    }

    public String getBankCardNumber() 
    {
        return bankCardNumber;
    }

    public void setBankName(String bankName) 
    {
        this.bankName = bankName;
    }

    public String getBankName() 
    {
        return bankName;
    }

    public void setBankBranchName(String bankBranchName) 
    {
        this.bankBranchName = bankBranchName;
    }

    public String getBankBranchName() 
    {
        return bankBranchName;
    }

    public void setRealName(String realName) 
    {
        this.realName = realName;
    }

    public String getRealName() 
    {
        return realName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("applicantId", getApplicantId())
            .append("applicantType", getApplicantType())
            .append("amount", getAmount())
            .append("currency", getCurrency())
            .append("approvalStatus", getApprovalStatus())
            .append("applyTime", getApplyTime())
            .append("approveTime", getApproveTime())
            .append("approverId", getApproverId())
            .append("phoneNumber", getPhoneNumber())
            .append("applyRemark", getApplyRemark())
            .append("approvalRemark", getApprovalRemark())
            .append("bankCardNumber", getBankCardNumber())
            .append("bankName", getBankName())
            .append("bankBranchName", getBankBranchName())
            .append("realName", getRealName())
            .toString();
    }
}
